export interface Department {
  id: string;
  name: string;
  code: string;
  description?: string;
  parentId?: string;
  level: number;
  sort: number;
  status: number;
  managerId?: string;
  createdAt: Date;
  updatedAt: Date;
}

export interface CreateDepartmentRequest {
  name: string;
  code: string;
  description?: string;
  parentId?: string;
  level?: number;
  sort?: number;
  managerId?: string;
}

export interface UpdateDepartmentRequest {
  id: string;
  name?: string;
  code?: string;
  description?: string;
  parentId?: string;
  level?: number;
  sort?: number;
  status?: number;
  managerId?: string;
}

export interface DepartmentWithChildren extends Department {
  children?: DepartmentWithChildren[];
  users?: any[];
}